package com.lzp.mapper;

import com.lzp.my.mapper.MyMapper;
import com.lzp.pojo.Items;
import com.lzp.pojo.vo.ItemCommentVO;
import com.lzp.pojo.vo.SearchItemsVO;
import com.lzp.pojo.vo.ShopcartVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface ItemsMapperCustom {

    /**
     * 查询商品评论
     *
     * @param paramsMap 参数
     * @return
     */
    List<ItemCommentVO> queryItemComments(@Param("paramsMap") Map<String, Object> paramsMap);

    /**
     * 搜索商品
     *
     * @param paramsMap 参数
     * @return
     */
    List<SearchItemsVO> searchItems(@Param("paramsMap") Map<String, Object> paramsMap);

    /**
     * 根据第三分类查询商品列表
     *
     * @param paramsMap 参数
     * @return
     */
    List<SearchItemsVO> searchItemsByThirdCatId(@Param("paramsMap") Map<String, Object> paramsMap);

    /**
     * 根据商品规格id查询商品数据
     *
     * @param specIdsList 规格列表
     * @return
     */
    List<ShopcartVO> queryItemsBySpecIds(@Param("paramsList") List specIdsList);

    /**
     * 使用乐观锁扣除商品库存
     *
     * @param specId    规格id
     * @param buyCounts 购买数量
     * @return
     */
    int decreaseItemSpecStock(@Param("specId") String specId,
                              @Param("buyCounts") Integer buyCounts);

}